import html2canvas from 'html2canvas';
import JsPDF from 'jspdf';
function downloadPDF(){
  // let shareContent = document.body,//需要截图的包裹的（原生的）DOM 对象
  let shareContent = document.getElementById('exportPdf'),//需要截图的包裹的（原生的）DOM 对象
  
  width = shareContent.clientWidth, //获取dom 宽度
  height = shareContent.clientHeight, //获取dom 高度
  canvas = document.createElement("canvas"), //创建一个canvas节点
  
  scale = 1; //定义任意放大倍数 支持小数
  canvas.width = width * scale; //定义canvas 宽度 * 缩放
  canvas.height = height * scale; //定义canvas高度 *缩放
  canvas.style.width = shareContent.clientWidth * scale + "px";
  canvas.style.height = shareContent.clientHeight * scale + "px";
  canvas.getContext("2d").scale(scale, scale); //获取context,设置scale
  let opts = {
      scale: scale, // 添加的scale 参数
      canvas: canvas, //自定义 canvas
      logging: false, //日志开关，便于查看html2canvas的内部执行流程
      width: width, //dom 原始宽度
      height: height,
      useCORS: true, // 【重要】开启跨域配置
  };
  html2canvas(shareContent, opts).then(() => {
      let contentWidth = canvas.width;
      let contentHeight = canvas.height;
      //一页pdf显示html页面生成的canvas高度;
      let pageHeight = (contentWidth / 592.28) * 841.89;
      //未生成pdf的html页面高度
      let leftHeight = contentHeight;
      //页面偏移
      let position = 0;
      //a4纸的尺寸[595.28,841.89]，html页面生成的canvas在pdf中图片的宽高
      let imgWidth = 595.28;
      let imgHeight = (592.28 / contentWidth) * contentHeight;
      let pageData = canvas.toDataURL("image/jpeg", 1.0);
      // let PDF = new JsPDF("", "pt", "a4");  // a4纸纵向
      // let PDF = new JsPDF('landscape');  // 横向页面
      let arrDPI = js_getDPI(); //获取显示器DPI
      let dpiX = 96;
      let dpiY = 96;
      if(arrDPI.length>0){
          dpiX = arrDPI[0];
          dpiY = arrDPI[1];
      }
      //l:横向， p：纵向；单位： in:英寸，mm毫米；画布大小：a3,a4,leter,[]（当内容为数组时，为自定义大小）
      let PDF = new JsPDF("p", "in", [(contentWidth+10)/dpiX,(contentHeight+10)/dpiY]);  // 自定义页面大小
    //   let PDF = new JsPDF("p", "in", [15,19]);  // 自定义页面大小
      if (leftHeight <= pageHeight) {
          PDF.addImage(pageData, "JPEG", 5/dpiX,5/dpiY); 
      } else {
          while (leftHeight > 0) {
              PDF.addImage(pageData, "JPEG", 0, position);
              leftHeight -= pageHeight;
              position -= 841.89;
              if (leftHeight > 0) {
                  PDF.addPage();
              }
          }
      }
      PDF.save( "111222.pdf"); // 这里是导出的文件名
  })
  .catch(()=>{
      
  })
}
//获取显示器DPI
function js_getDPI() {
  var arrDPI = new Array();
  if (window.screen.deviceXDPI != undefined) {
      arrDPI[0] = window.screen.deviceXDPI;
      arrDPI[1] = window.screen.deviceYDPI;
  }
  else {
      var tmpNode = document.createElement("DIV");
      tmpNode.style.cssText = "width:1in;height:1in;position:absolute;left:0px;top:0px;z-index:99;visibility:hidden";
      document.body.appendChild(tmpNode);
      arrDPI[0] = parseInt(tmpNode.offsetWidth);
      arrDPI[1] = parseInt(tmpNode.offsetHeight);
      tmpNode.parentNode.removeChild(tmpNode);   
  }
  return arrDPI;
}
export default {
  downloadPDF
}